
dojo.provide("dojo.profile");dojo.profile={_profiles:{},_pns:[],start:function(name){if(!this._profiles[name]){this._profiles[name]={iters:0,total:0};this._pns[this._pns.length]=name;}else{if(this._profiles[name]["start"]){this.end(name);}}
this._profiles[name].end=null;this._profiles[name].start=new Date();},end:function(name){var ed=new Date();if((this._profiles[name])&&(this._profiles[name]["start"])){with(this._profiles[name]){end=ed;total+=(end-start);start=null;iters++;}}else{return true;}},dump:function(appendToDoc){var tbl=document.createElement("table");with(tbl.style){border="1px solid black";borderCollapse="collapse";}
var hdr=tbl.createTHead();var hdrtr=hdr.insertRow(0);var cols=["Identifier","Calls","Total","Avg"];for(var x=0;x<cols.length;x++){var ntd=hdrtr.insertCell(x);with(ntd.style){backgroundColor="#225d94";color="white";borderBottom="1px solid black";borderRight="1px solid black";fontFamily="tahoma";fontWeight="bolder";paddingLeft=paddingRight="5px";}
ntd.appendChild(document.createTextNode(cols[x]));}
for(var x=0;x<this._pns.length;x++){var prf=this._profiles[this._pns[x]];this.end(this._pns[x]);if(prf.iters>0){var bdytr=tbl.insertRow(true);var vals=[this._pns[x],prf.iters,prf.total,parseInt(prf.total/prf.iters)];for(var y=0;y<vals.length;y++){var cc=bdytr.insertCell(y);cc.appendChild(document.createTextNode(vals[y]));with(cc.style){borderBottom="1px solid gray";paddingLeft=paddingRight="5px";if(x%2){backgroundColor="#e1f1ff";}
if(y>0){textAlign="right";borderRight="1px solid gray";}else{borderRight="1px solid black";}}}}}
if(appendToDoc){var ne=document.createElement("div");ne.id="profileOutputTable";with(ne.style){fontFamily="Courier New, monospace";fontSize="12px";lineHeight="16px";borderTop="1px solid black";padding="10px";}
if(document.getElementById("profileOutputTable")){dojo.body().replaceChild(ne,document.getElementById("profileOutputTable"));}else{dojo.body().appendChild(ne);}
ne.appendChild(tbl);}
return tbl;}};dojo.profile.stop=dojo.profile.end;